home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 July / 07_02.iso / software / xq-xsetup / files / setup.exe / {app} / plugins / XQ Software Uninstall.xpl < prev    next >
Text File  |  2001-02-06  |  4KB  |  126 lines

  1. "FILE"="Xteq Systems X-Setup Plugin 5.0"
  2. "TYPE"="8"
  3. "COUNT"="3"
  4. "UIPATH"="System\Software Installation\Uninstall"
  5. "NAME"="Uninstall Software List Editor"
  6. "LANGUAGE"="VBScript"
  7. "TEXT 1"="Edit Name..."
  8. "TEXT 2"="Edit CMD..."
  9. "TEXT 3"="Delete"
  10. "DESCRIPTION 1"="For every program that has been installed, an item is created here"
  11. "DESCRIPTION 2"="ALWAYS try to use "Start - Settings - Control Panel - Software" to remove an item before using this plug-in."
  12. "DESCRIPTION 3"="This plug-in will NOT uninstall the software, it just removes the selected item from the registry!"
  13. "COMMENT 1"=" "
  14. "COMMENT 2"="Bug fix by Neil Turner <totalxs@hotmail.com>"
  15. "VERSION"="2.00"
  16. "AUTHOR"="Xteq Systems"
  17. "CONTACTURL"="http://www.xteq.com"
  18. "COPYRIGHT"="Copyright ⌐ Xteq Systems - All Rights Reserved"
  19.  
  20. 'Declaration of some constants
  21. sP="HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\"
  22. sV1="\DisplayName"
  23. sV2="\UninstallString"
  24.  
  25. Dim aryLoc()
  26.  
  27. 'Called when the Plugin is started
  28. SUB Plugin_Initialize
  29.  iCount=RegEnumPaths(sP)
  30.  
  31.  'count how many real items we have
  32.  
  33.  if iCount>0 then
  34.  
  35.     'redim array
  36.     ReDim aryLoc(iCount)
  37.  
  38.     for l=1 to iCount
  39.         aryLoc(l)=RegEnumElement(l)
  40.  
  41.         s=sP & RegEnumElement(l) & sV1
  42.         s=RegReadValue(s)
  43.         Call SetUIElement(l,s)
  44.     next
  45.  else
  46.     Disable
  47.  end if
  48. END SUB
  49.  
  50. 'Called when the Plugin should validate the Data the user has entered
  51. SUB Plugin_CheckData(ElementIndex)
  52. END SUB
  53.  
  54. 'Called when the Plugin should apply the changes
  55. SUB Plugin_Apply(ElementIndex,ElementSubIndex)
  56.  
  57.  if ElementSubIndex>0 then 'OK, user has selected an item
  58.  
  59.    If ElementIndex=1 then 'Rename name
  60.  
  61.       s=sp & aryLoc(ElementSubIndex) & sV1
  62.       sV=RegReadValue(s) 
  63.      
  64.       'DebugMsg ElementSubIndex
  65.       'Debugmsg s
  66.   
  67.        sV=InputWindow("Change Name in List",sV,1)
  68.        if IsEmpty(sV)=false then
  69.           'change it!
  70.           Call RegWriteValue(s,sV,1)          
  71.           Call SetUIElement(ElementSubIndex,sV)   
  72.        end if 
  73.  
  74.    else
  75.     if ElementIndex=3 then  'Delete!!
  76.  
  77.        'Create name of first value
  78.        t=sp & aryLoc(ElementSubIndex) ' "& sV1" removed here, and 's' renamed to 't'
  79.  
  80.        ' Start of new code added by Neil Turner <totalxs@hotmail.com>
  81.        iCount=RegEnumValues(t) ' Enumerate all values
  82.        For u=1 to iCount
  83.            s=RegEnumElement(u) ' Get one of the values...
  84.            s=t & "\" & s ' Get full path of value...
  85.            Call RegDeleteValue(s) ' ... and delete it!
  86.        Next
  87.    
  88.        If IsEmpty(t & "\@")=true then
  89.           Call RegDeletePath(t) ' Finally, delete key!
  90.        else
  91.           If IsEmpty(t & "\@")=true then
  92.              Call RegDeleteValue(t & "\@") ' Otherwise, remove (Default) and then delete key. IsEmpty test is carried out twice - otherwise X-Setup produces an error (don't know why).
  93.           end if
  94.           Call RegDeletePath(t)
  95.        end if
  96.        
  97.  
  98.  ' End of new code
  99.        
  100.  
  101.        'Set item to empty so it is removed from the list...
  102.        Call SetUIElement(ElementSubIndex,"")
  103.  
  104.     else 'Edit command
  105.  
  106.        s=sp & aryLoc(ElementSubIndex) & sV2
  107.        sV=RegReadValue(s) 
  108.   
  109.        sV=InputWindow("Change Uninstall Command",sV,1)
  110.        if IsEmpty(sV)=false then
  111.           'change it!
  112.           Call RegWriteValue(s,sV,1)
  113.        end if 
  114.  
  115.     end if
  116.    end if
  117.  
  118.  else
  119.   Call MsgWarning("No item selected - please select an item first.")
  120.  end if
  121. END SUB
  122.  
  123. 'Called when the Plugin is about to be removed from memory
  124. SUB Plugin_Terminate
  125. END SUB
  126.